/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is Forte for Java, Community Edition. The Initial * Developer of the Original Code is Sun Microsystems, Inc. Portions * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */ package org.netbeans.editor.ext; import java.text.CharacterIterator; /** * Character-iterator that operates on the array of characters. * * @author Miloslav Metelka * @version 1.00 */ public class CharacterArrayIterator implements CharacterIterator { char[] chars; int beginIndex; int endIndex; int index; public CharacterArrayIterator(char[] chars, int beginIndex, int endIndex) { this.chars = chars; this.beginIndex = beginIndex; this.endIndex = endIndex; index = beginIndex; } private char currentChar() { return (index >= beginIndex && index < endIndex) ? chars[index] : DONE; } public char first() { index = beginIndex; return currentChar(); } public char last() { index = endIndex - 1; return currentChar(); } public char current() { return currentChar(); } public char next() { index = Math.min(index + 1, endIndex); return currentChar(); } public char previous() { if (index <= beginIndex) { return DONE; } else { return chars[--index]; } } public char setIndex(int position) { if (position < beginIndex || position >= endIndex) { throw new IllegalArgumentException(); } index = position; return currentChar(); } public int getBeginIndex() { return beginIndex; } public int getEndIndex() { return endIndex; } public int getIndex() { return index; } public Object clone() { return new CharacterArrayIterator(chars, beginIndex, endIndex); } } /* * Log * 1 Gandalf-post-FCS1.0 3/8/00 Miloslav Metelka * $ */